/*
 * @lc app=leetcode.cn id=1863 lang=typescript
 *
 * [1863] 找出所有子集的异或总和再求和
 */

// @lc code=start
// 数学方法
function subsetXORSum(nums: number[]): number {
    let res = 0;
    let n = nums.length;
    for (let num of nums) {
        res |= num;
    }
    return res << (n - 1);
}
// @lc code=end
